const fs = require('fs');
const path = require('path');
const archiver = require('archiver');

// 获取当前日期和版本号
const packageJsonPath = path.resolve(__dirname, 'package.json');
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
let version = packageJson.version;
const env = process.argv[2];
if(env == 'dev'){
  version = packageJson.dev_version;
}
// 获取命令行参数
const fileName = `后台网页-${env=='dev'?'测试服':'正式服'}(${version}).zip`;

// 创建输出流
const output = fs.createWriteStream(path.join(__dirname, fileName));
const archive = archiver('zip', {
  zlib: { level: 9 } // Sets the compression level.
});

// 监听所有 archive 数据已写完
output.on('close', function() {
  console.log(fileName);
});

// 监听存档警告（如果有）
archive.on('warning', function(err) {
  if (err.code !== 'ENOENT') {
    throw err;
  }
});

// 监听存档错误
archive.on('error', function(err) {
  throw err;
});

// 管道输出流存档
archive.pipe(output);

// 将 dist 目录中的所有文件追加到 zip 包中
archive.directory('dist/', false);

// 完成归档
archive.finalize();